package hot_100;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: Darven
 * @createTime: 2025-09-27  18:20
 * @description: TODO
 */
public class P54 {
    public static void main(String[] args) {

    }

    public List<Integer> spiralOrder(int[][] matrix) {
        int m=matrix.length;
        int n=matrix[0].length;

        int up=0,down=m-1,left=0,right=n-1;

        List<Integer> ans=new ArrayList<>();

        while (ans.size()<m*n){
            // 右边
            for(int i=left;i<=right;i++){
                ans.add(matrix[up][i]);
            }
            up++;

            // 下
            for(int i=up;i<=down;i++){
                ans.add(matrix[i][right]);
            }
            down--;

            // 左
            for(int i=right;i>=left;i--){
                ans.add(matrix[down][i]);
            }
            right++;

            // 上
            for(int i=down;i>=up;i--){
                ans.add(matrix[up][i]);
            }
            left--;
        }
        return ans;
    }
}
